package com.ftg.learn.chapter16;

import com.ftg.learn.chapter14.teshu.EnumKjx;
import com.sun.xml.internal.ws.api.model.CheckedException;

import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * @author KangJx
 * @date 2021/8/3
 */
public class LearnThrow {

    /**
     * 手工抛出异常时，为什么numberformatexception
     * exeption
     * 用来计算两个正整数之和
     * @param x  正整数
     * @param y  正整数
     * @return   正整数
     */
    public int add(int x,int y) {

        //减少if else 情况 ： 实际开发以完成功能为前提:

        if(x < 0 || y < 0){
            //我把认为异常抛出方法(在方法调用处直接处理)
            //throwable - error - exception
            // -- checkedexception(编程时候就要处理的) runtimeexception(运行时才会处理的)
            throw new KjxException(EnumEx.e_0001);
        }
        return x + y;

//        if(x > 0 && y > 0){
//            return x + y;
//        }else{
//            //手工向外抛出异常: 这个异常在哪里执行等要求全是程序人员来管理的
//            //NumberFormatException 数字格式化异常
//            //手工抛出异常后方法结束
//            throw new NumberFormatException("参数x以及参数y必须为正整数");
//        }
        //丢失了return:方法要求在任何情况下都 要return
    }


    public static void main(String[] args) {
        int a = Integer.valueOf("abc");
        System.out.println(a);
//        NumberFormatException
//        ClassCastException
//        FileNotFoundException - IOException(io异常 - 流操作 java操作文件的时候用的是流)
//        ClassNotFoundException - ReflectiveOperationException(反射技术)
    }

}
